package com.example.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 博客评论表
 * </p>
 *
 * @author wuyunbin
 * @since 2024-10-20
 */
@Data
@TableName("tb_comments")
public class Comment implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 评论主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 文章或帖子ID，关联具体评论对象
     */
    private Long articleId;

    /**
     * 评论者用户ID（登录用户），如果为匿名评论，则为NULL
     */
    private Long userId;

    /**
     * 评论者昵称，非登录用户也可填写昵称
     */
    private String nickname;

    /**
     * 头像
     */
    private String avatar;

    /**
     * 评论内容
     */
    private String content;

    /**
     * 父级评论ID，用于嵌套回复，如无则为NULL
     */
    private Long parentId;

    /**
     * 评论时的 IP 地址（IPv4/IPv6 均支持）
     */
    private String ipAddress;

    /**
     * 评论状态：0-待审核，1-审核通过，2-已删除/屏蔽
     */
    private Integer status;

    /**
     * 点赞数
     */
    private Integer likeCount;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createdTime;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime updatedTime;
} 